package br.com.sjdr.projeto.gui;

import javax.swing.*;

import br.com.sjdr.projeto.item.Pedido;
import br.com.sjdr.projeto.pessoa.Cliente;

import java.awt.*;
import java.awt.event.*;

/**
 * Classe responsavel pela GUI da tela administrador
 *
 */
public class TelaAdministrador {
	
	public TelaAdministrador(){
		this.goAdm();
	}
	
	//Declarando o frame
	JFrame frameAdm = new JFrame("SJDR CONFEC��ES - ADMINISTRADOR -");
	JPanel panelAdm = new JPanel ();
	JMenuBar menuBar = new JMenuBar();
	
	//Declarando Menu Cliente
	JMenu menuCliente = new JMenu("MENU CLIENTE");
	//Declarando Componentes do Menu Cliente
	JMenuItem cadastrarCli = new JMenuItem("Cadastrar clientes");
	JMenuItem buscarCli = new JMenuItem("Buscar clientes");
	JMenuItem excluirCli = new JMenuItem("Excluir clientes");
	JMenuItem listaCli = new JMenuItem("Listagem de clientes");
	
	
	//Declarando Menu Fornecedor
	JMenu menuFornecedor = new JMenu("MENU FORNECEDOR");
	//Declarando Componentes do Menu Fornecedor
	JMenuItem cadastrarForn = new JMenuItem("Cadastrar fornecedores");
	JMenuItem buscarForn = new JMenuItem("Buscar fornecedores");
	JMenuItem excluirForn = new JMenuItem("Excluir fornecedores");
	JMenuItem listaForn = new JMenuItem("Listagem de fornecedores");
	
	//Declarando Menu Item
	JMenu menuItem = new JMenu("MENU ITEM");
	//Declarando Componentes do Menu Item
	JMenuItem cadastrarItem = new JMenuItem("Cadastrar itens");
	JMenuItem listaItem = new JMenuItem("Listagem de itens");
	JMenuItem buscaItemCod = new JMenuItem("Buscar itens pelo codigo");
	JMenuItem buscaItemNome = new JMenuItem("Buscar itens pelo nome");
	JMenuItem historicoItem = new JMenuItem("Historico de compras");
	JMenuItem historicoVendas = new JMenuItem("Historico de vendas");
	
	//Declarando Menu Pedido
	JMenu menuPedido = new JMenu("MENU PEDIDO");
	//Declarando Componentes do Menu Pedido
	JMenuItem novoPedido = new JMenuItem("Novo Pedido");
	JMenuItem consultaPedido = new JMenuItem("Consultar Pedido");
	
	//Declarando Menu Usuarios
	JMenu menuCadastro = new JMenu("MENU USUARIOS");
	//Declarando Componentes do Menu Cadastro de usuario
	JMenuItem cadastroAdm = new JMenuItem("Cadastrar Admin");
	JMenuItem excluirAdm = new JMenuItem("Excluir Admin");
	JMenuItem cadastroVend = new JMenuItem("Cadastrar Vendedor");
	JMenuItem excluirVend = new JMenuItem("Excluir Vendedor");
	JMenuItem cadastroComp = new JMenuItem("Cadastrar Comprador");
	JMenuItem excluirComp = new JMenuItem("Excluir Comprador");
	JMenuItem historicoLogin = new JMenuItem("Historico de Login");
	
	JMenuItem sair= new JMenuItem("SAIR");
	//Declarando Labels
	JLabel logo = new JLabel();
	
	static JButton voltar = new JButton("Voltar");
	
	/**
	 * Dispara a função
	 * Tela Administrador
	 */
	
	public void goAdm(){
		
		//Definindo o frame
		frameAdm.setLocation(260,80);
		frameAdm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frameAdm.setSize(800,600); // Tamanho do frame
		frameAdm.setVisible(true); // Frame visivel ou nao
		frameAdm.setResizable(false);
		
		// Centraliza a janela.
		java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
		.getScreenSize();
		int componentWidth = frameAdm.getWidth();
		int componentHeight = frameAdm.getHeight();
		frameAdm.setBounds((screenSize.width - componentWidth) / 2,
				(screenSize.height - componentHeight) / 4, componentWidth,
				componentHeight);
		
		//-----------------DEFININDO MENUS-------------------------------------------
		
		//-----------------Inicio da Definição do menu CLIENTE-----------------------
		
		menuBar.add(menuCliente);
		
		menuCliente.add(cadastrarCli); // Cadastrar cliente
		cadastrarCli.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg0) {
					  
						GuiCliente.guiNovoCliente();
						
					}
					
				});
		
		menuCliente.add(buscarCli); // Buscar cliente
		buscarCli.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg1) {
						GuiCliente.guiBuscarCliente();
					}
				});
		
		menuCliente.add(excluirCli); // Excluir cliente
		excluirCli.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg2) {
						GuiCliente.guiExcluirCliente();;
					}
				});
		
		menuCliente.add(listaCli); // Listagem de  clientes
		listaCli.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg3) {
						GuiCliente.guiListagemCliente();
					}
				});
		//-----------------Fim da Definição do menu CLIENTE-----------------------
		
		//-----------------Inicio da Definição do menu FORNECEDOR-----------------------
		menuBar.add(menuFornecedor);
		
		menuFornecedor.add(cadastrarForn); // Cadastrar fornecedor
		cadastrarForn.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg4) {
						GuiFornecedor.guiNovoFornecedor();
					}
				});
		
		menuFornecedor.add(buscarForn); // Buscar Fornecedor
		buscarForn.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg5) {
						GuiFornecedor.guiBuscarFornecedor();
					}
				});
		
		menuFornecedor.add(excluirForn); // Excluir Fornecedor
		excluirForn.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg6) {
						GuiFornecedor.guiExcluirFornecedor();
					}
				});
		
		menuFornecedor.add(listaForn); // Listagem de Fornecedores
		listaForn.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg7) {
						GuiFornecedor.guiListagemFornecedor();
					}
				});	
		//-----------------Fim da Definição do menu FORNECEDOR-----------------------
		
		//-----------------Inicio da Definição do menu ITEM--------------------------
		menuBar.add(menuItem);
		
		menuItem.add(cadastrarItem); // Cadastrar Item
		cadastrarItem.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg8) {
						GuiItem g = new GuiItem();
						g.adicionarItem();	
						frameAdm.setVisible(false);	
						
						
						
					}
				});	
		
		menuItem.add(listaItem); // Listagem de  Itens
		listaItem.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg9) {
						GuiItem g = new GuiItem();
						g.imrprimiEstoque();
						
						
						
					}
				});	
		
		menuItem.add(buscaItemCod); // Buscar Itens por codigo
		buscaItemCod.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg10) {
						GuiItem g = new GuiItem();
						String cod = JOptionPane.showInputDialog(null,"Digite o Codigo");
						g.buscaCod(Integer.parseInt(cod));
						
						
					}
				});	
		
		menuItem.add(buscaItemNome); // Buscar Itens por nome
		buscaItemNome.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg11) {
						GuiItem g = new GuiItem();
						String nome = JOptionPane.showInputDialog(null,"Digite o nome o Item");
						g.buscaPorNome(nome);	
						
						
						
					}
				});	
		
		menuItem.add(historicoItem); // historico de compras
		historicoItem.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg12) {
						GuiItem g = new GuiItem();
						g.imrprimiHistorico();
						
						
						
					}
				});	
		
		menuItem.add(historicoVendas); // historico de compras
		historicoVendas.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg12) {
						GuiItem g = new GuiItem();
						g.imrprimiHistoricoVendas();
						
						
						
					}
				});	
		//-----------------Fim da Definição do menu ITEM----------------------------------
		
		//-----------------Inicio da Definição do menu PEDIDO-----------------------------
		menuBar.add(menuPedido);
		
		menuPedido.add(novoPedido); // Cadastrar novo pedido
		novoPedido.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg13) {
						GuiPedido gp = new GuiPedido();
						Cliente p = gp.buscarCliente(JOptionPane.showInputDialog(null,"Digite o nome do Cliente"));
						if(p==null){JOptionPane.showMessageDialog(null,"cliente n�o encontrado");}
						else{
						Pedido p1 = new Pedido();	
						p1.setCliente(p.getNome());
						gp.novoPedido(p1);
						}
										
					}
				});	
		
		menuPedido.add(consultaPedido); // Consulta pedidos em aberto
		consultaPedido.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg14) {
				
						GuiPedido gp = new GuiPedido();
						Pedido p3 = gp.buscarPedido(JOptionPane.showInputDialog(null,
						"Digite o nome do Cliente com Pedido em Aberto"));
						if (p3 == null) {
							JOptionPane
							.showMessageDialog(null, "Pedido não encontrado");
						} else {
							gp.novoPedido(p3);
							
						}		
					
										
						
					}
				});	
		
		//-----------------Fim da Definição do menu PEDIDO--------------------------------
	
		
		
		//-----------------Inicio da Definiçao do menu CADASTRO DE USUARIO----------------
		menuBar.add(menuCadastro);
		
		menuCadastro.add(cadastroAdm); // Cadastrar novo administrador
		cadastroAdm.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg15) {
					GuiAdministrador.guiCadastraAdministrador();
					}
				});	
		
		menuCadastro.add(excluirAdm); // Excluir Administrador
		excluirAdm.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg15) {
						GuiAdministrador.guiExcluirADMINISTRADOR();
					}
				});	
		
		menuCadastro.add(cadastroVend); // Cadastrar novo Vendedor
		cadastroVend.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg16) {
						GuiVendedor.guiCadastraVendedor();
					}
				});	
		
		menuCadastro.add(excluirVend); // Cadastrar novo Vendedor
		excluirVend.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg16) {
						GuiVendedor.guiExcluirVendedor();
					}
				});	
		
		menuCadastro.add(cadastroComp); // Cadastrar novo comprador
		cadastroComp.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg17) {
						GuiCliente.guiNovoCliente();
						
					}
				});
		
		menuCadastro.add(excluirComp); // Cadastrar novo comprador
		excluirComp.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg17) {
						GuiCliente.guiExcluirCliente();
					}
				});	
		
		
		/**
		 * Imrpime lista de logins
		 * Samuel
		 */
		menuCadastro.add(historicoLogin); 
		historicoLogin.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent arg17) {
						GuiAdministrador g = new GuiAdministrador();
						g.historicoLogin();
											
					}
				});	
		//-----------------Fim da Definição do menu CADASTRO DE USUARIO--------------------
		
		menuBar.add(sair);
		sair.addActionListener(new ActionListener(){
			
					public void actionPerformed(ActionEvent arg18) { 
						
						frameAdm.setVisible(false);
						TelaLogin t = new TelaLogin();
						t.login();
						
						
						
					}
				});	
		
		//Adicionando componentes ao painel
		frameAdm.setBackground(Color.white); // cordo painel
		menuBar.setVisible(true);
		frameAdm.setJMenuBar(menuBar);
		
		
		//Definindo Labels
		logo.setIcon(new ImageIcon("logosjdr.jpg"));
		
		//Adicionando componentes ao frame
		
		frameAdm.getContentPane().add(BorderLayout.NORTH, panelAdm); //Adicionando painel
		frameAdm.getContentPane().add(BorderLayout.CENTER, logo); //Adicionado logo
			
	}
}
	
	